package academia.persistencia;
import java.util.ArrayList;
import java.util.List;

import academia.negocio.ConverteTipo;
import academia.pessoal.Pessoa;

public class PseudoBanco {
	
	static private  List<Pessoa> listaPessoa;
	static private List<String> listaNomes;
	static private int posicao ;
	
	
	
	public PseudoBanco(){
		listaPessoa = new ArrayList<Pessoa>();
		listaNomes = new ArrayList<String>();	
	}
	
	public static int getPosicao() {
		return posicao;
	}

	public static void setPosicao(int n) {
		PseudoBanco.posicao = n;
	}
	

	public static String getListaNomes(int n) {
		return PseudoBanco.listaNomes.get(n);
	}
	
	public static int sizeListaNomes(){
		return PseudoBanco.listaNomes.size();
	}
	
	public static List<String> getListaNomes() {
		return PseudoBanco.listaNomes;
	}

	public void setListaNomes(String string){
		PseudoBanco.listaNomes.add(string);
	}
	
	public static void setListaNomes(String string, int n){
		PseudoBanco.listaNomes.add(n, string);
	}
	
	public static String getNome(int n){
		String string = PseudoBanco.getPessoa(n).getNome();
		return string;
	}
	
	public static String getTipo(int n){
		String string = PseudoBanco.getPessoa(n).getTipo();
		return string;
	}
	
	public static String getCpf(int n){
		String string = PseudoBanco.getPessoa(n).getCpf();
		return string;
	}
	public static String getCep(int n){
		String string = PseudoBanco.getPessoa(n).getCep();
		return string;
	}
	public static String getNascimento(int n){
		String string = PseudoBanco.getPessoa(n).getNascimento();
		return string;
	}
	public static String getCidade(int n){
		String string = PseudoBanco.getPessoa(n).getCidade();
		return string;
	}
	
	public static String getBairro(int n){
		String string = PseudoBanco.getPessoa(n).getBairro();
		return string;
	}
	
	public static String getEndereco(int n){
		String string = PseudoBanco.getPessoa(n).getEndereco();
		return string;
	}
	
	public static String getSenha(int n){
		String string = PseudoBanco.getPessoa(n).getSenha();
		return string;
	}
	
	public static String getCref(int n){
		String string = PseudoBanco.getPessoa(n).getCref();
		return string;
	}
	
	public static String getTelefone(int n){
		String string = PseudoBanco.getPessoa(n).getTelefone();
		return string;
	}
	
	// sets
	public static void setNome(String nome, int n){
		PseudoBanco.getPessoa(n).setNome(nome);
	}
	
	public static void setCpf(String nome, int n){
		PseudoBanco.getPessoa(n).setCpf(nome);
	}
	
	public static void setCep(String nome, int n){
		PseudoBanco.getPessoa(n).setCep(nome);
	}
	
	public static void setTelefone(String nome, int n){
		PseudoBanco.getPessoa(n).setTelefone(nome);
	}
	
	public static void setCidade(String nome, int n){
		PseudoBanco.getPessoa(n).setCidade(nome);
	}
	
	public static void setNascimento(String nome, int n){
		PseudoBanco.getPessoa(n).setNascimento(nome);
	}
	
	public static void setBairro(String nome, int n){
		PseudoBanco.getPessoa(n).setBairro(nome);
	}
	
	public static void setEndereco(String nome, int n){
		PseudoBanco.getPessoa(n).setEndereco(nome);
	}
	
	public static void setSenha(String nome, int n){
		PseudoBanco.getPessoa(n).setSenha(nome);
	}
	
	public static void setTipo(String nome, int n){
		PseudoBanco.getPessoa(n).setTipo(nome);
	}
	
	
	
	//
	public static String getNomeTipo(int n){
		String string = PseudoBanco.getNome(n) +" ("+ PseudoBanco.getTipo(n) + ") CPF: " + PseudoBanco.getCpf(n);
		return string;
	}
	
	
	
	public static void setListaNomes() {		
		PseudoBanco.listaNomes.clear();
		for (int n = 0; n < PseudoBanco.listaPessoa.size(); n++) {  
			
			PseudoBanco.setListaNomes(PseudoBanco.getNomeTipo(n),n);
  
        }  
		
	}
	public static int sizeListaPessoa(){
		int n = PseudoBanco.listaPessoa.size();
		return n;
	}
	
	//Adiciona objeto(uma pessoa) no "banco de dados".
	public static void addPessoa(Pessoa pessoa){
		PseudoBanco.listaPessoa.add(pessoa);
	}
	
	//Retorna a lista que representa o banco de dados
	public static List<Pessoa> getCadastrados(){
		return PseudoBanco.listaPessoa;
	}
	public static Pessoa getPessoa(int n){
		Pessoa pessoa = PseudoBanco.listaPessoa.get(n);
		return pessoa;
	}
	//Remove da lista.
	public static void removerPessoa(Pessoa pessoa){
		PseudoBanco.listaPessoa.remove(pessoa);
	}
	
}
	